﻿//简单的c++程序
#include"cwq.h"
//int main() {
//	cout << "hello,world!" << endl;
//	return 0;
//}
using namespace cwq;
//缺省参数：缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时，如果没有指定实
	//参则采用该形参的缺省值，否则使用指定的实参
void Func(int a = 0)
{
	cout << a << endl;
}
//函数重载：是函数的一种特殊情况，C++允许在同一作用域中声明几个功能类似的同名函数，这
//些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同，常用来处理实现功能类似数据类型
//不同的问题。
//1、参数类型不同
int Sub(int a, int b)
{
	cout << "int Sub(int a, int b)" << endl;
	return a-b;
}
double Sub(double a, double b)
{
	cout << "double Sub(double a, double b)" << endl;
	return a-b;
}
//2、参数个数不同
int Sub(int a, int b, int c) {
	return a - b - c;
}
//3、参数类型顺序不同
void f(int a, char b)
{
	cout << "f(int a,char b)" << endl;
}
void f(char b, int a)
{
	cout << "f(char b, int a)" << endl;
}
//c++的引用,给变量起别名的意思
void TestRef()
{
	int a = 10;
	// int& ra;   // 该条语句编译时会出错
	int& ra = a;
	int& rra = a;
	cout << a << " " << ra << " " << rra << " " << endl;
}
int main() {
	double b = 0;
	char c = 0;
	int a=Add(2,8);
	cout << a << endl;    //<<输出
	//cin >> b >> c;       //>>输入
	//cout << b << " " << c << endl;
	Func();
	Func(6);
	int w=Sub(9, 2);
	double y=Sub(2.7, 1.8);
	int m = Sub(8, 3, 2);
	cout << w << " "<<y<<" "<<m<<endl;
	TestRef();
	return 0;
}

